<header>
:这似乎是违反直觉的,但是可以在单个页面内使用多个 <header>
标签。<header>
标签应该用作介绍性信息的容器,因此在页面中只可能出现一次(很可能位于顶部),但是如果把页面内容分成多个区域,那么也可能多次使用它。任何容器元素都可以具有一个<header>
元素,只需确保使用它包括关于其中包含的元素的介绍性信息即可<footer>
: <footer>
标签用于包含关于其包含元素(页面或区域)的额外信息,比如版权和作者信息,或者指向相关资源的链接。<nav>
:如果站点具有导航元素,比如指向站点内或者甚至页面自身内的其它区域的链接,这些链接将位于 <nav>
标签内。通常可以在<header>
标签的第一个实例中发现 <nav>
标签,这只是因为人们倾向于把导航系统放在顶部,并将其视作介绍性信息,但是并非必须如此。你可以把 <nav>
元素放在任意位置(只要它包括导航系统即可),并且可以根据需要在页面上具有许多 <nav>
元素(通常不超过两个,但是你可能另有所图)。
<section>
: <section>
标签包含主题上相关的任何内容,它还可以包含一个用于介绍性信息的<header>
标签,并且可能包含一个用于其它相关信息的 <footer>
标签。可以把 <section>
视作携带有比标准的 <p>
(段落)或 <div>
(分区)标签更多的含义,后面两个标签通常根本不会传达任何含义,使用 <section>
可以传达它所包含的内容元素之间的关系。
<article>
: <article>
标签就像是 <section>
标签,这是由于它可以包含<header>
、
<footer>
以及其它的容器元素,比如段落和分区。但是利用 <article>
标签携带的额外含义是它就像报纸或其它出版物中的文章一样。在发表的博客、新闻文章、评论及其它适合这种描述的项目周围可以使用这个标签。 <article>
与 <section>
之间的一个关键区别是 <article>
是一个独立的作品体系,而 <section>
则是一个主题信息组
在最基本的层面上,<header>
元素包含介绍性信息。该信息可能采用实际的 <h1>
(或其它级别)元素的形式,或者它可能只是 <p>
或 <div>
元素内包含的标志图像或文本。内容的含义本质上应该是介绍性的,以保证它包括在<header>
</header>
标签对内。
<header>
内所允许内容的唯一例外是:<header>
元素不能包含其它<header>
元素,也不能包含 <footer>
元素。类似地,
<header>
元素不能被包含在 <address>
或 <footer>
元素内。
由于 <section>
元素可以包含任何其它的流式内容元素,并且可以被包含在其它任何流式内容元素内( <address>
元素除外),很容易明白的是,对于 <section>
元素的使用,如果具有通用的指导原则但是没有其它的限制,那么有时会误解它。
在使用 section 元素时应该注意以下几个问题。
文档、页面、应用程序或站点中的一个完整或自含式的作品,在理论上讲,它是可独立分发或重用的。
nav 意为导航。在 html 5 中 ,一般使用 ul 或 ol 对连接进行结构化,让后在外部包裹一个 nav 。
<aside>
意指包含与它周围的内容只有稍微有些关联的任何内容——额外的解释、指向相关资源的链接、醒目引文、帮助文本等。
与<header>
元素类似, <footer>
元素可以包含流式内容类别中的其它任何元素(其它 <footer>
或<header>
元素除外),并且它也是其中一员。此外,
<footer>
元素不能包含在 <address>
元素内,但是 <footer>
元素可以包含 <address>
元素。事实上, <footer>
元素是存放
<address>
元素的常见位置。
在 <footer>
元素内放置有用的 <address>
内容是 <footer>
元素的最有效的应用之一(更不要说 <address>
元素了),因为它提供了关于它所引用的页面或页面区域的特定上下文信息。
div 并不是语义元素,但却是相当重要的结构性元素。
div 是无语义的块级容器, span 是无语义的内联短语内容。两个在实际开发中用的最多。